
HEADERS  = 
SOURCES  = main_points.cpp main_triangles.cpp main_triangles_retrieve.cpp
OBJECTS  = $(SOURCES:.c=.o)
PROGRAMS = $(basename $(SOURCES))

###############################################################################

ifdef DEBUG
OPTFLAGS = -g
else
OPTFLAGS = -O3
endif

CC      = g++
CFLAGS  = -Wall $(OPTFLAGS)
LDFLAGS = -lGL -lglut

UNAME = $(shell uname)
ifeq ($(UNAME), Darwin)  # Mac OS X
# OpenGL and GLUT are frameworks, override LDFLAGS above
LDFLAGS = -framework OpenGL -framework GLUT
# Universal binary support
CFLAGS  += #-arch i386
LDFLAGS += #-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5u.sdk
endif

###############################################################################

all: $(PROGRAMS)

$(PROGRAMS):
	$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@

define PROGRAM_template
$(1): $(addsuffix .o,$(1)) 
endef
$(foreach t,$(PROGRAMS),$(eval $(call PROGRAM_template,$(t))))

clean:
	$(RM) $(OBJECTS)

Clean:
	$(MAKE) clean
	$(RM) $(PROGRAMS)

.PHONY: all clean

###############################################################################

%.o: %.c
	$(CC) -c $(CFLAGS) $< -o $@

%.o: %.cpp
	$(CC) -c $(CFLAGS) $< -o $@

%.d: %.c
	$(CC) -MM $< > $@

###############################################################################

